package com.example.oasystem.service.impl;




import com.example.oasystem.dao.attend.AoaAttendsListDao;
import com.example.oasystem.entity.attend.AoaAttendsList;
import com.example.oasystem.entity.status.AoaStatusList;
import com.example.oasystem.service.AoaAttendsListService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class AoaAttendsListServiceImpl implements AoaAttendsListService {
    @Autowired
    AoaAttendsListDao aoaAttendsListDao;

    public PageInfo<AoaAttendsList> selectAllByNameAndDeptAndLimit (int pageNum, int pageSize, String deptid)
    {
        PageHelper.startPage(pageNum, pageSize);
        List<AoaAttendsList> list = aoaAttendsListDao.selectAllByNameAndDept(deptid);
        PageInfo<AoaAttendsList> pageAttends = new PageInfo<AoaAttendsList>(list);
        return pageAttends;
    }
    public PageInfo<AoaAttendsList> selectAllByNameAndDeptAndLimitAndName (int pageNum, int pageSize, String deptid,String baseKey)
    {
        PageHelper.startPage(pageNum, pageSize);
        List<AoaAttendsList> list = aoaAttendsListDao.selectAllByNameAndDeptAndName(deptid,baseKey);
        PageInfo<AoaAttendsList> pageAttends = new PageInfo<AoaAttendsList>(list);
        return pageAttends;
    }
    public int deleteAttends(int aid){
        return aoaAttendsListDao.deleteById(aid);
    }
    public AoaAttendsList findOne(int attendsId){
        return aoaAttendsListDao.findOne(attendsId);
    }
    public List<AoaStatusList> findAttendsStatus(int typeId){
        List<AoaStatusList> status = aoaAttendsListDao.findAttendsStatus();
        if (typeId == 8){
            //上班
            status.remove(2);
        }
        if (typeId == 9){
            status.remove(1);
        }
        return status;
    }
    public int updateAttends(int id,String remark,int statusId){
        return aoaAttendsListDao.updateAttends(id,remark,statusId);
    }
    public PageInfo<AoaAttendsList> selectAllByNameAndDeptAndLimitAndNameAndOrder (int pageNum, int pageSize, String deptid,String baseKey,Integer type,Integer time,Integer status)
    {
        PageHelper.startPage(pageNum, pageSize);
        String order="desc";
        if(type!=null&&type==1)
        {
            order="asc";
        }
        if(time!=null&&time==1)
        {
            order="asc";
        }
        if(status!=null&&status==1)
        {
            order="asc";
        }
        List<AoaAttendsList> list = aoaAttendsListDao.selectAllByNameAndDeptAndNameAndOrder(deptid,baseKey,type,time,status,order);
        PageInfo<AoaAttendsList> pageAttends = new PageInfo<AoaAttendsList>(list);
        return pageAttends;
    }
    @Override
    public int insertSelective(AoaAttendsList record) {
        return aoaAttendsListDao.insertSelective(record);
    }



    @Override
    public int updateByPrimaryKeySelective(AoaAttendsList record) {
        return aoaAttendsListDao.updateByPrimaryKeySelective(record);
    }



    @Override
    public List<AoaAttendsList> AoaAttendsList(Long attanendsUserId,String attendsTime) {
        return aoaAttendsListDao.AoaAttendsList(attanendsUserId,attendsTime);
    }

    @Override
    public List<AoaAttendsList> aoaAttendsLists(Long userId, String attendsTime) {
        return aoaAttendsListDao.aoaAttendsLists(userId, attendsTime);
    }

    @Override
    public List<AoaAttendsList> aoaAttendsListPageSearch(Long attendsUserId, String attendsTime, int number, int size) {
        return aoaAttendsListDao.aoaAttendsListPageSearch(attendsUserId, attendsTime, number, size);
    }

    @Override
    public int updateStatusIdAndRemarkById(String attendsRemark, long statusId, long attendsId) {
        return aoaAttendsListDao.updateStatusIdAndRemarkById(attendsRemark,statusId,attendsId);
    }
}
